package framework.utils;

public class StringUtil {
        /**
         * 判断字符串是否为空或null
         * @param str
         * @return
         */
        public static boolean isBlank(String str){
            str = str == null?"":str.trim();
            return str.equals("");
        }
        
        /**
         * 去除字符串两边的空格
         * @param str
         * @return
         */
        public static String trim(String str){
            str = str ==null?"":str.trim();
            return str;
        }
        
        public static String trim(Object obj){
            String str = String.valueOf(obj);
            return trim(str);
        }
        
        public static String trimToNull(Object obj) {
            String str = String.valueOf(obj);
            str = (str == null) ? null : str.trim();
            return str;
        }
        
        /**
         *字符串去重,如果字符串为空返回默认值 
         * @param value
         * @param defaultValue
         * @return
         */
        public static String trim(String str,String defaultValue){
            if(!isBlank(str)){
                return str.trim();
            }
            return defaultValue;
        }
    
        /**
         * 字符串如果为空字符串，NULL，或"null" 则返回false 否则为true
         * @param str
         * @return
         */
        public static boolean isPresent(String str){
            str = StringUtil.trim(str);
            if(!"".equals(str)&&!"null".equals(str.toLowerCase())){
                return true;
            }
            return false;
        }
        /**
         * 三元运算式
         * @param str
         * @param isEqulsStr
         * @param value
         * @param otherValue
         * @return
         */
        public static Object docode(String input,String value,Object result,Object defaultResult){
            input=trim(input);
            value=trim(value);
            return input.equals(value)?result:defaultResult;
        }
        /**
         * 三元表达式
         * @param express 返回值为boolean的表达式
         * @param result  返回结果为true的结果
         * @param defaultResult  返回结果为false的结果
         * @return
         */
        public static String decode(boolean express,String result,String defaultResult){
            return express?result:defaultResult;
        }
        
}
